package com.xyy.saas.payment.adpater.impl;

import com.alibaba.fastjson.JSON;
import com.ctrip.framework.apollo.Config;
import com.ctrip.framework.apollo.ConfigChangeListener;
import com.ctrip.framework.apollo.ConfigService;
import com.ctrip.framework.apollo.model.ConfigChangeEvent;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.pingplusplus.Pingpp;
import com.pingplusplus.exception.PingppException;
import com.pingplusplus.model.*;
import com.pingplusplus.net.RequestOptions;
import com.xyy.saas.payment.adpater.PaymentAdapter;
import com.xyy.saas.payment.adpater.pingxx.constants.BusinessOrderTypeConfig;
import com.xyy.saas.payment.adpater.pingxx.constants.OrderConstants;
import com.xyy.saas.payment.adpater.pingxx.constants.RefundConstants;
import com.xyy.saas.payment.adpater.pingxx.constants.WithdrawalConstants;
import com.xyy.saas.payment.adpater.pingxx.service.PingxxAdpaterService;
import com.xyy.saas.payment.adpater.pingxx.util.PingxxConvertUtil;
import com.xyy.saas.payment.cashier.core.CashierConstants;
import com.xyy.saas.payment.common.Constants;
import com.xyy.saas.payment.common.enums.ChannelEnum;
import com.xyy.saas.payment.common.exception.PaymentException;
import com.xyy.saas.payment.config.PingxxConfig;
import com.xyy.saas.payment.cores.bo.*;
import com.xyy.saas.payment.cores.enums.*;
import com.xyy.framework.redis.core.RedisClient;
import com.xyy.saas.payment.cores.vo.ContactInfo;
import com.xyy.saas.payment.cores.vo.OrderClearingUserVo;
import com.xyy.saas.payment.cores.vo.OrderClearingVo;
import com.xyy.saas.payment.dao.mapper.PayResultOrderMapper;
import com.xyy.saas.payment.dao.mapper.PrePayOrderMapper;
import com.xyy.saas.payment.dao.mapper.RefundOrderMapper;
import com.xyy.saas.payment.dao.mapper.RoyaltyOrderMapper;
import com.xyy.saas.payment.dao.model.*;
import com.xyy.saas.payment.merchant.core.dto.QueryAccountDto;
import com.xyy.saas.payment.merchant.core.vo.Recipient;
import com.xyy.saas.payment.merchant.core.vo.SettleAccountDto;
import com.xyy.saas.payment.merchant.core.vo.UserDto;
import com.xyy.saas.payment.payment.core.bo.RefundBO;
import com.xyy.saas.payment.payment.core.bo.WithdrawalBO;
import com.xyy.saas.payment.payment.core.dto.PayDto;
import com.xyy.saas.payment.payment.core.dto.PrepayDto;
import com.xyy.saas.payment.payment.core.dto.RefundDto;
import com.xyy.saas.payment.payment.core.dto.WithdrawalDto;
import com.xyy.saas.payment.payment.core.service.PrePayOrderService;
import com.xyy.saas.payment.service.PayAccountService;
import com.xyy.saas.payment.service.ThirdUserInfoService;
import com.xyy.saas.payment.settle.core.bo.RoyaltySettleBo;
import com.xyy.saas.payment.settle.core.dto.SettleOrderRoyaltyDto;
import com.xyy.saas.payment.util.*;
import com.xyy.util.StringUtil;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.DependsOn;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;

import java.util.*;
import java.util.concurrent.*;


/**
 * @author chenshuyi
 * @date 2019/10/23 16:57
 */
@Service
public class PingxxAdapter implements PaymentAdapter {

}